#pragma once
#include <iostream>
using namespace std;

//c中没有字符串 字符串类(c风格的字符串)
//空串 ""
class MyString
{
        //重载 << 左移操作符
                //此时的成员函数就不行了 用友元函数来做
        friend ostream& operator<<(ostream &out, MyString &s);
        //重载 >> 右移操作符
                //此时的成员函数就不行了 用友元函数来做
        friend istream& operator>>(istream &in, MyString &s);
private:
        int len;
        char *p;
public:
        MyString(int len = 0);
        //有参构造函数
        MyString(const char* p);
        //赋值(拷贝)构造函数
        MyString(const MyString& s );
        //析够函数
        ~MyString();
public:
        //重载 = 号操作符
        MyString& operator=(const char *p);
        MyString& operator=(const MyString &s );
        //重载 [ ]号操作符
        char& operator[](int index);
        //重载 == 双等号操作符
        bool operator==(const char *p);
        bool operator==(const MyString &s);
        //重载 != 不等号操作符
        bool operator!=(const char *p);
        bool operator!=(const MyString &s);
        //重载 > 大于号操作符
        int operator>(const char *p);
        int operator>(const MyString &s);
        //重载 < 小于号操作符
        int operator<(const char *p);
        int operator<(const MyString &s);
        

public:
        //把类的指针露出了
        char* c_str()
        {
                return p;
        }
        const char* c_str2()
        {
                return p;
        }
        int length()
        {
                return len;
        }
};


